Conventionally, moving image data have been processed as interlaced image data because of various kinds of restrictions. However, along with elimination of conventional restrictions owing to improvement in the performance of image sensing devices, storage devices, display devices, and the like and increasing demand for improvement in the image quality of moving image data, moving image data have been increasingly processed as progressive (noninterlaced) image data. In general, for example, the monitors of personal computers are designed to perform progressive display, and hence moving image are suitably processed as progressive image data in personal computers. This is one of the factors for the tendency described above.
The coding schemes for moving image data can be roughly classified into schemes using interframe correlation and those not using it. These schemes have their own merits and demerits, and which one of them is suitable depends on the application to be used. For example, Motion JPEG is a scheme of independently coding each frame of moving image data while regarding each frame as one still image. This scheme is one of the coding schemes using no interframe correlation. Independently coding each frame makes it possible to decode image data upon selecting the number of frames to be decoded in accordance with the throughput on the decoding side.
Among the coding schemes of independently coding each frame of moving image data, a scheme of coding each frame by using a combination of wavelet transform and bit plane coding has recently attracted a great deal of attention. For example, major features of such a moving image coding scheme are that decoding can be done while the spatial resolution is changed stepwise using the mechanism of subband decomposition in wavelet transform, and decoded pixel precision can be changed stepwise by changing the number of bit planes to be decoded.
JPEG 2000 (ISO/IEC 15444), which is under the process of standardization by ISO/IEC JTC1/SC29/WG1, is also constituted by a combination of wavelet transform and bit plane coding. According to Part 3 of this standard, a file format is defined in a case wherein this scheme is used to code each frame of moving image data.
FIG. 11 is a block diagram showing the arrangement of a conventional image coding apparatus using a coding scheme based on a combination of wavelet transform and bit plane coding. The flow of coding processing in the conventional image coding apparatus will be briefly described with reference to FIG. 11. As shown in FIG. 11, the conventional image coding apparatus includes an image input unit 201, discrete wavelet transform unit 202, coefficient quantization unit 203, bit plane coding unit 204, code sequence forming unit 205, and code output unit 206.
First of all, image data to be coded is input to this apparatus through the image input unit 201. The discrete wavelet transform unit 202 divides the input image data to be coded into a plurality of frequency bands (subbands). Wavelet transform of the image data is generally performed by a method of dividing the data into four subbands first by applying one-dimensional transform processing to the data in the horizontal and vertical directions, and then repeatedly dividing only a low-frequency subband (subband LL).
The coefficient quantization unit 203 quantizes the coefficients of each subband with a quantization step determined for each subband. The bit plane coding unit 204 divides the quantized transform coefficient of each subband into small rectangular areas (to be referred to as “code blocks” hereinafter), and codes the transform coefficients on a code block basis preferentially in the bit plane direction from the most significant bit to the least significant bit. Note that when the respective bits in a bit plane are to be coded, they are classified into several states (contexts) according to information that has already been coded and are coded with different occurrence probability prediction models.
Subsequently, the code sequence forming unit 205 generates a code sequence by arranging the coded code block data generated by the bit plane coding unit 204 in a predetermined order. The generated code sequence is output from the code output unit 206 to the outside of the image coding apparatus.
Assume that the discrete wavelet transform unit 202 performs two-dimensional wavelet transform twice to sequentially code the coefficients of the respective subbands from a low-frequency subband LL to a high-frequency subband HH2, and transmits the resultant data to the image decoding apparatus. In this case, on the decoding side, when the coefficients of the subband are received, a reconstructed image with a resolution ¼ that of the original image can be obtained. When the coefficients of the subbands LL, LH1, HL1, and HH1 are received, a reconstructed image with a resolution ½ that of the original image can be obtained. In addition, when coefficients up to the coefficients of the subbands LH2, HL2, and HH2 are received, a reconstructed image with the original resolution can be obtained. In this manner, an image can be decoded while the resolution is gradually increased.
When the coded bit plane data of the respective code blocks which are obtained by the bit plane coding unit 204 are transmitted from the most significant bit to the least significant bit, the decoding side can reconstruct the transform coefficients of the respective subbands while gradually increasing the resolution. This makes it possible to decode an image with low image quality in the initial state of transmission and decode an image with high image quality as transmission progresses.
There is still demand for image display on a TV set that is not designed to process moving image data as progressive image data. In this case, an interlaced image is required to be generated from a progressive image and output.
In such a case, in the above conventional image coding scheme and image decoding scheme, one-frame image data is decoded first, and then even or odd lines must be extracted and output as fields. That is, the data of lines that are not required to be output must also be decoded.